﻿using GDM.Hogar.Entidades;
using GDM.Hogar.Managers.Contratos;
using GDM.Hogar.Repositorios.Contratos;
using System;
using System.Collections.Generic;

namespace GDM.Hogar.Managers
{
    public class IntegranteManager : IIntegranteManager
    {
        private readonly IIntegranteRepositorio _integranteRepositorio;

        public IntegranteManager(IIntegranteRepositorio integranteRepositorio)
        {
            if (integranteRepositorio == null)
            {
                throw new ArgumentNullException("integranteRepositorio");
            }
            _integranteRepositorio = integranteRepositorio;
        }

        public void ActivarIntegrante(int integranteId, bool activo, string motivo = null)
        {
            _integranteRepositorio.ActivarIntegrante(integranteId, activo, motivo);
        }

        public void ActualizarIntegrante(string integrante)
        {
            _integranteRepositorio.ActualizarIntegrante(integrante);
        }

        public bool ExisteIntegrante(string nroDocumento, int tipoDocumento)
        {
            var integrante = _integranteRepositorio.ObtenerIntegrante(nroDocumento, tipoDocumento);
            return integrante != null;
        }

        public void GuardarIntegrante(string integrante)
        {
            _integranteRepositorio.GuardarIntegrante(integrante);
        }

        public Integrante ObtenerIntegrante(int integranteId)
        {
            return _integranteRepositorio.ObtenerIntegrante(integranteId);
        }

        public IList<ConsultaIntegrante> ObtenerIntegrantes()
        {
            return _integranteRepositorio.ObtenerIntegrantes();
        }

        public IList<IntegranteAsisteActividad> AsistenAActividad(int actividadId)
        {
            return _integranteRepositorio.AsistenAActividad(actividadId);
        }
    }
}